﻿/*
/// <summary>
/// Copyright(c) 2008-2009北京玖富时代投资顾问有限公司, All Rights Reserved.
/// 
/// "我的"时间日期类，以中文区域设置时间日期的字符串格式或者转换字符串为日期类型 
 * 
/// 强烈建议在程序中使用该类统一日期时间格式问题
 * 
/// 版本：Ver 1.0
/// 作者：邓太华
/// 时间：2009-06-18
/// </summary>
*/
using System;

namespace Hisuntech.SystemFramework.Common
{
    /// <summary>
    /// 以中文区域设置处理的时间日期格式，避免在繁体，英文操作系统下面的日期时间格式转换问题
    /// </summary>
    public class MyDateTime
    {
        //设置语言国家
        private static System.IFormatProvider format = new System.Globalization.CultureInfo("zh-CN", true);

        /// <summary>
        /// 获取时间日期字符串，格式为 yyyy-MM-dd HH:mm:ss
        /// </summary>
        /// <param name="dt">要转换的时间日期</param>
        /// <returns>中文标准时间日期字符串</returns>
        public static string GetDateTimeString(DateTime dt)
        {
            return dt.ToString("yyyy-MM-dd HH:mm:ss", format);
        }

        /// <summary>
        /// 将中文标准时间日期字符串转换成日期时间类型，要转换的日期时间格式必须为 yyyy-MM-dd HH:mm:ss
        /// </summary>
        /// <param name="dateTimeString">要转换的日期时间字符串</param>
        /// <returns>日期时间类型</returns>
        public static DateTime GetDateTime(string dateTimeString)
        {
            return DateTime.ParseExact(dateTimeString, "yyyy-MM-dd HH:mm:ss", format);
        }

        /// <summary>
        /// 返回自定义日期时间格式的日期类型数据
        /// </summary>
        /// <param name="dateTimeString">时间日期字符串</param>
        /// <param name="formatString">格式字符串，如yyyyMMdd</param>
        /// <returns></returns>
        public static DateTime GetDateTime(string dateTimeString,string formatString)
        {
            return DateTime.ParseExact(dateTimeString, formatString, format);
        }

        /// <summary>
        /// 获取系统时间，如果联网，将会返回服务器时间，否则，返回本地时间。
        /// </summary>
        /// <returns></returns>
        public static DateTime GetSysDateTime()
        {
            //优化策略：
            //系统启动，调用服务器时间，推算出跟本地时间的一个差值 ，以后都用本地时间 加上这个差值，获得服务器时间，省去频繁的网络连接。
            return DateTime.Now;
        }
    }
}
